/**
 * 拆分模块,用来维护首页的数据
 */
//
import { reqCategotyList, reqSwiperList, reqFloorList } from '@/api/index'
const home = {
  namespaced: true,
  state: {
    categotyList: [],
    // 在初始值的时候给一个对象,这个方法慎用,因为不知道后端返回的数据有多少
    // swiperList: [{}]
    swiperList: [],
    floorList: []
  },
  getters: {},
  mutations: {
    // 这里接收到数据
    saveCategotyList(state, categotyData) {
      // 把数据赋值给 state
      state.categotyList = categotyData.slice(0, 15)
    },
    // 存储轮播图接口返回的数据
    saveSwiperList(state, params) {
      state.swiperList = params
    },
    // 存储楼层接口返回的数据
    saveFloorList(state, params) {
      state.floorList = params
    }
  },
  actions: {
    // 获取三级分类数据
    async getCategotyList(context) {
      // 调用 API 接口获取三级分类数据
      const res = await reqCategotyList()
      // 如果业务状态码是200
      if (res.code === 200) {
        // 则通过小型store中的 commit 调用 mutations中的 的方法,并把数据传递过去
        context.commit('saveCategotyList', res.data)
      }
    },
    // 获取轮播图数据
    async getSwiprData(context) {
      // 调用 API 接口获取轮播图数据
      const swiper = await reqSwiperList()
      // console.log(swiper)
      // 如果业务状态码是200
      if (swiper.code === 200) {
        // 则通过小型store中的 commit 调用 mutations中的 的方法,并把数据传递过去
        context.commit('saveSwiperList', swiper.data)
      }
    },
    // 获取楼层数据
    async getFloorData(context) {
      // 借助定义好的 API 来发送请求
      const floor = await reqFloorList()
      // 判断当前返回的数据的业务状态码是否是 200
      if (floor.code === 200) {
        // 如果是 200 则通过 commit 来调用 mutaaions 中定义的 方法,并将接口返回的数据data传递过去
        context.commit('saveFloorList', floor.data)
      }
    }
  },
  modules: {}
}

export default home
